#-*- coding: utf-8 -*-
"""
@author: Bruno Figueira 11234
@author: Luis Pereira 12784
@last updated: 25-11-2014
@obs: Modulo que lê os valores do ficheiro Excel
"""

import xlrd
from model.model import DadosIPCPortugal


class ExcelReader():
    """
    Dado o ficheiro Excel pretendido, lê os seus valores linha a linha
    """

    def __init__(self):
        """
        Construtor da classe ExcelReader
        """

    def xlread_db(self, dbmanager, path):
        """
        Abre o ficheiro Excel que se encontrar no path e le individualmente
        cada linha da folha pretendida

        Keyword Arguments:
        dbmanager -- Objeto da classe DBManager
        path -- Caminho do ficheiro Excel
        """
        #Abre o ficheiro
        xls = xlrd.open_workbook(path)

        #Define a primeira folha do ficheiro
        plan = xls.sheets()[0]

        #Percorre o numero de linhas da folha e retorna os valores nas linhas
        for i in range(1, plan.nrows):
            ano = plan.cell(i, 1).value
            ipc_global = plan.cell(i, 2).value
            taxa_de_inflacao = plan.cell(i, 3).value
            remun_min_mensal = plan.cell(i, 4).value
            remun_max_mensal = plan.cell(i, 5).value
            pib_anual = plan.cell(i, 6).value
            rendimento_nacional_bruto_anual = plan.cell(i, 7).value
            rendimento_disponivel_bruto_anual = plan.cell(i, 8).value
            remuneracoes_anual = plan.cell(i, 9).value

            dbmanager.add_line(DadosIPCPortugal(ano, ipc_global,
                                                taxa_de_inflacao,
                                                remun_min_mensal,
                                                remun_max_mensal,
                                                pib_anual,
                                    rendimento_nacional_bruto_anual,
                                    rendimento_disponivel_bruto_anual,
                                    remuneracoes_anual))